package com.dragon.refect.clazz;

import java.lang.reflect.Array;
import java.util.Arrays;

/**
 * getClasses():返回一个包含Class对象的数组，该Class对象表示所有公共类和接口，这些公共类和接口都是此Class对象所表示的类的成员。
 * 这包括从超类继承的公共类和接口成员，以及由该类声明的公共类和接口成员。 如果此Class对象没有公共成员类或接口，
 * 则此方法返回长度为0的数组。 如果此Class对象表示原始类型，数组类或void，则此方法还返回长度为0的数组。
 *
 * getDeclaredClasses(): 返回一个Class对象数组，该数组反映了所有声明为该Class对象表示的类成员的所有类和接口。
 * 这包括公共，受保护的，默认（程序包）访问以及由该类声明的私有类和接口，但不包括继承的类和接口。
 * 如果类未将任何类或接口声明为成员，或者此Class对象表示原始类型，数组类或void，则此方法返回长度为0的数组。
 * @author dragon
 * @since 2019/12/1
 */
public class ClassGetClassesTest {

    public static void main(String[] args) {
        Class<?>[] classes = Outer.class.getClasses();
        System.out.println(Arrays.toString(classes));

        System.out.println(Arrays.toString(Outer.class.getDeclaredClasses()));
    }
}
